package cn.qhuan.modules.mapper;

import cn.qhuan.modules.entity.Document;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
 * @Description: 文档表
 * @Author: 司翔宇
 * @Date:   2020-12-21
 * @Version: V1.0
 */
public interface DocumentMapper extends BaseMapper<Document> {
    /**
     * 根据专题id查询关联的文档
     * @param id
     * @return
     */
    public List<String> finddocumentIdsBySpecialId(String id);
    /**
     * 根据展厅id查询关联的文档
     * @param id
     * @return
     */
    public List<String> findDocIdsByEhxhiId(String id);
    /**
     * 根据类别id查询关联的文档
     * @param id
     * @return
     */
    public List<String> findDocIdsByClassId(String id);

    /**
     * 设置文档与展厅的关系
     * @param uuid
     * @param docId
     * @param exhiId
     */
    public void  addDocToExhi(String uuid, String docId, String exhiId);

    /**
     * 设置文档与专题的关系
     * @param uuid
     * @param docId
     * @param specId
     */
    public void addDocToSpec(String uuid, String docId, String specId);


    /**
     * 设置文章与类别的关系
     * @param uuid
     * @param docId
     * @param typeId
     */
    public void addDocToType(String uuid, String docId, String typeId);
    /**
     * 设置文章与类别的关系
     * @param uuid
     * @param docId
     * @param artistId
     */
    public void addDocToArtist(String uuid, String docId, String artistId);

    /**
     * 设置文章与标签的关系
     * @param uuid
     * @param docId
     * @param tagId
     */
    public void addDocToTag(String uuid, String docId, String tagId);
    /**
     * 删除文档与类别的关系
     * @param docId
     * @param
     */
    public void deleteTypeAssociation(String docId);
    /**
     * 删除文档与展厅的关系
     * @param docId
     * @param
     */
    public void deleteExhiAssociation(String docId);
    /**
     * 删除文档与专题的关系
     * @param docId
     * @param
     */
    public void deleteSpecialAssociation(String docId);
    /**
     * 删除文档与艺术家的关系
     * @param docId
     * @param
     */
    public void deleteArtistAssociation(String docId);

    /**
     * 删除文档与标签的关系
     * @param docId
     */
    public void deleteTagAssociation(String docId);


    /**
     * 查询文档在与类别关联表中出现的次数
     * @param docId
     * @param
     * @return
     */
    public Integer selectDocumentCountToType(String docId);
    /**
     * 查询文档在与展厅关联表中出现的次数
     * @param docId
     * @param
     * @return
     */
    public Integer selectDocumentCountToExhi(String docId);
    /**
     * 查询文档在与专题关联表中出现的次数
     * @param docId
     * @param
     * @return
     */
    public Integer selectDocumentCountToSpecial(String docId);
    /**
     * 查询文档在与艺术家关联表中出现的次数
     * @param docId
     * @param
     * @return
     */
    public Integer selectDocumentCountToArtist(String docId);

    /**
     * 查询文档在与标签关联表中出现的次数
     * @param docId
     * @return
     */
    public Integer selectDocumentCountToTag(String docId);
    /**
     * 查询所有文档数量
     * @return
     */
    public Integer selectDocumentCount();

    /**
     * 查询当前文档之后的文档
     * @param documentId
     * @return
     */
    public List<Document> getAfterDocument(String documentId);
    /**
     * 查询当前文档之前的文档
     * @param documentId
     * @return
     */
    public List<Document> getPreDocument(String documentId);
}
